package cc.tuhaolicai.mt.user.mobile.tool;

/**
 * 对象的类型
 *
 * @author chenli
 * @create 2017-07-20
 */
public class ObjectType {


    /**
     * 是否是数字类型
     * @param o：
     */
    public static boolean isNumber(Object o){
        Class<?> type = o.getClass();
        return isNumber(type);
    }

    /**
     * 是否是数字类型
     * @param type：
     */
    public static  boolean isNumber(Class<?> type){
        return isInteger(type) || isDouble(type) || isLong(type);
    }

    /**
     * 判断对象是否是一个Integer或者int对象
     * @param o：需要判断的对象
     */
    public static boolean isInteger(Object o){
        Class<?> type = o.getClass();
        return isInteger(type);
    }


    /**
     * 判断对象是否是一个Integer或者int对象
     * @param type：需要判断的对象
     */
    public static boolean isInteger(Class<?> type){
        if(type != Integer.class && type != Integer.TYPE){
            return false;
        }
        return true;
    }

    /**
     * 判断对象是否是一个Double或者double对象
     * @param o：需要判断的对象
     */
    public static boolean isDouble(Object o){
        Class<?> type = o.getClass();
        return isDouble(type);
    }


    /**
     * 判断对象是否是一个Double或者double对象
     * @param type：需要判断的对象
     */
    public static boolean isDouble(Class<?> type){
        if(type != Double.class && type != Double.TYPE){
            return false;
        }
        return true;
    }

    /**
     * 判断对象是否是一个Long或者long对象
     * @param o：需要判断的对象
     */
    public static boolean isLong(Object o){
        Class<?> type = o.getClass();
        return isLong(type);
    }


    /**
     * 判断对象是否是一个Long或者long对象
     * @param type：需要判断的对象
     */
    public static boolean isLong(Class<?> type){
        if(type != Long.class && type != Long.TYPE){
            return false;
        }
        return true;
    }

    /**
     * 判断对象是否是一个Boolean或者boolean对象
     * @param o：需要判断的对象
     */
    public static boolean isBoolean(Object o){
        Class<?> type = o.getClass();
        return isBoolean(type);
    }


    /**
     * 判断对象是否是一个Boolean或者boolean对象
     * @param type：需要判断的对象
     */
    public static boolean isBoolean(Class<?> type){
        if(type != Boolean.class && type != Boolean.TYPE){
            return false;
        }
        return true;
    }
}